package com.ruoyi.store.mapper;

import com.ruoyi.system.api.domain.store.StockIn;
import com.ruoyi.system.api.dto.StockInDTO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 入库记录Mapper接口
 *
 * @author lmj
 * @date 2024-10-31
 */
public interface StockInMapper {
    /**
     * 查询入库记录
     *
     * @param id 入库记录主键
     * @return 入库记录
     */
    public StockIn selectStockInById(Integer id);

    public int getStockInCount(StockIn stockIn);

    /**
     * 查询入库记录列表
     *
     * @param stockIn 入库记录
     * @return 入库记录集合
     */
    public List<StockIn> selectStockInList(StockIn stockIn);

    public StockIn getStockInByCode(String code);

    /**
     * 新增入库记录
     *
     * @param stockIn 入库记录
     * @return 结果
     */
    public int insertStockIn(StockIn stockIn);

    /**
     * 修改入库记录
     *
     * @param stockIn 入库记录
     * @return 结果
     */
    public int updateStockIn(StockIn stockIn);

    /**
     * 删除入库记录
     *
     * @param id 入库记录主键
     * @return 结果
     */
    public int deleteStockInById(Integer id);

    /**
     * 批量删除入库记录
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteStockInByIds(Integer[] ids);

    List<StockIn> selectStockInListForBuyBack(StockInDTO stockInDTO);

    List<StockIn> selectStockInListPlus(StockInDTO stockInDTO);

    List<StockIn> getUsePayList(StockInDTO stockInDTO);

    List<StockInDTO> selectStockInListByCodeList(@Param("codeList") List<String> codeList);
}
